﻿using System;
using System.Collections.Generic;
using System.Text;

namespace _010_011_012操作符详解_17_
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int x = 7;
            int y = 7 << 1;  //左移一位是乘2  //右移一位是除2
            string strX=Convert.ToString(x,2).PadLeft(32,'0');  // 00000000000000000000000000000111
            string strY=Convert.ToString(y,2).PadLeft(32,'0');  // 00000000000000000000000000001110
            Console.WriteLine(strX);
            Console.WriteLine(strY);


            //关系操作符
            int a = 5;
            double b = 4.0;
            var result = a >= b;
            Console.WriteLine(result.GetType().FullName); //System.Boolean
            Console.WriteLine(result);  //True

            //字符串比较是否相等  C# 中的 string 类型的 == 操作符被重载了，用于比较字符串的内容，而不是引用地址。
            //你的例子中使用了字符串字面量，.NET 的字符串驻留机制很可能让 str1 和 str2 指向同一个内存对象，这进一步保证了 == 会返回 True

            string str1 = "abc";
            string str2 = "abc";
            string str3 = "ABC";
            Console.WriteLine(str1==str2);

            Console.WriteLine(str1 ==str3.ToLower());



            //按位求与 
            int num1 = 7;
            int num2 = 28;
            int z = num1 & num2;

            string strN1 = Convert.ToString(num1, 2).PadLeft(32, '0');
            string strN2 = Convert.ToString(num2, 2).PadLeft(32, '0');
            string strN3 = Convert.ToString(z, 2).PadLeft(32, '0');
            Console.WriteLine(strN1); //00000000000000000000000000000111
            Console.WriteLine(strN2); //00000000000000000000000000011100
            Console.WriteLine(strN3); //00000000000000000000000000000100

            //条件 与 &&  或 条件或 ||
            //短路效应  一边为假时 另一边不再执行

            //可空类型
            Nullable<int> typeVariable = null;
            Console.WriteLine(typeVariable.HasValue);  //False

            //等价于

            int? typeNullVariable = null;
            int typeIsNullResult = typeNullVariable ?? 1; //如果为空则赋值1
            Console.WriteLine(typeIsNullResult);

        }

    }
}
